package com.vf.admin.client.service;

import com.vf.admin.client.result.PayInfoResult;
import com.vf.admin.miaodong.entity.AppCzMoney;
import com.vf.admin.miaodong.entity.AppUser;
import com.vf.admin.miaodong.entity.VipPackage;
import com.vf.admin.miaodong.entity.WechatPayConfigs;

import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SignatureException;
import java.util.List;
import java.util.Map;

/**
 * <p>Title : </p>
 * <p>Description : </p>
 * <p>DevelopTools : IDEA</p>
 * <p>DevelopSystem : Windows10</p>
 *
 * @Author : NemoMeng
 * @Date 2023/6/26 11:29
 */
public interface WechatPayConfigsService {

    /**
     * 权重支付信息
     *
     * @return
     */
    WechatPayConfigs getWeightPlayInfo();

    /**
     * 用于钻石充值 H5
     */
    PayInfoResult wechatDiamondRechargeH5(HttpServletRequest request, AppUser user, AppCzMoney czMoney, String mobileSpec);

    /**
     * 用于会员充值续费 H5
     */
    PayInfoResult wechatOpenVipRechargeH5(HttpServletRequest request, AppUser user, VipPackage vipPackage, String mobileSpec);

    /**
     * 用于会员充值续费 H5
     */
    PayInfoResult wechatOpenVipRechargeApp(HttpServletRequest request, AppUser user, VipPackage vipPackage, String mobileSpec, String appid);


    PayInfoResult shopH5(HttpServletRequest request, String name, BigDecimal price);


    /**
     * 小程序支付 钻石充值
     */
    Map<String,String> jsApiDiamondRecharge(HttpServletRequest request, AppUser user, AppCzMoney czMoney, String mobileSpec, String openid) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException;




    /**
     * 获取配置详情
     *
     * @param appIdStr
     * @return
     */
    WechatPayConfigs getAppIdInfo(String appIdStr);

    List<WechatPayConfigs> list();
    void openH5(String id);
}
